Remote control of a web browser

ABSTRACT

A system for remotely and interactively controlling visual and multimedia content displayed on and rendered by a web browser using a telephony device. In particular, the system relates to receiving a voice input (e.g., dual tone multi-frequency DTMF input, spoken input, etc.) from a telephony device (e.g., a landline, a cellular telephone, or other system with telephone functionality, etc.) via a wide-area network to an intermediary computer that is configured to control the rendering of one or more web pages (or other web data) by a standard web browser.

BACKGROUND

1. Technical Field

The present disclosure relates to a software system and method forcontrolling the display or other operation of a web page displayed in abrowser in response to external command data submitted from a telephonein DTMF, voice, or other form.

2. Description of the Related Art

Web browsers have been used for many years now, as have telephones. Bothhave evolved from relatively primitive inventions to complex creations,yet fundamentally they perform much of the same duties today, as theydid at the time of their introduction, namely to efficiently transmitinformation from a source to a recipient.

Since the inception of the web browser, many improvements have beenmade, enabling the transmittal of increasingly complex data to and froma web server. The data transmitted can include text, images, audio,video, etc. (even tactile information if a client computer is properlyequipped). The popularity of the web has made web content available in aplethora of locations besides standard computer displays. For example,with the decline in electronic component prices, even plasma displaysand other multimedia-capable display devices are able to display webpage data using incorporated web rendering software.

The inventor has recognized that current implementations of interactivevoice response systems (IVRs) are inconvenient to users, particularlybecause of the inconvenience associated with not being able to visualizecurrent available choices when using an IVR system. Additionally, insuch systems, time is wasted when IVR prerecorded information is read toa user over the phone at a pace that is slower than what may benecessary for that particular user, resulting in frustration andinefficiency.

SUMMARY

The present disclosure describes various techniques for controlling thedisplay of a web page using a telephony device. In one embodiment, acomputer system is configured to receive voice input (e.g., dual tonemulti-frequency DTMF input, spoken input, etc.) from a telephony device(e.g., a landline, a cellular telephone, or other system with telephonefunctionality, etc.) over a wide-area network (e.g., a public switchedtelephone network, voice over IP network, etc). The computer system isalso configured to, in response to the received voice input, control thecontent of one or more web pages displayed on a display unit coupled tothe computer system. For example, the computer system may update contentof at least one of the one or more web pages.

In some embodiments, the received voice input is made in response to avisual prompt provided by the computer system via the display unit. Inother embodiments, the received voice input is made in response to avoice prompt provided by the computer system via the telephony device.In some embodiments, the computer system is usable with atelephony-based customer service interactive voice response (IVR)system, where at least one of the one or more web pages includesinformation corresponding to options available via the IVR system, andwhere the web page is updatable in real time based on the received voiceinput.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1. illustrates one embodiment of an automated telephony project(ATP) system.

FIG. 2. illustrates one embodiment of an interface server.

FIG. 3. illustrates one embodiment of a method performed by an ATPsystem.

FIG. 4 is one embodiment of a computer system on which various methodsdescribed by the present disclosure can be practiced.

DETAILED DESCRIPTION

This specification includes references to “one embodiment” or “anembodiment.” The appearances of the phrases “in one embodiment” or “inan embodiment” do not necessarily refer to the same embodiment.Particular features, structures, or characteristics may be combined inany suitable manner consistent with this disclosure.

FIG. 1 illustrates one embodiment of an automated telephony project(ATP) system 100 that enables a user (e.g., of a telephone) to control aweb page (e.g., control content that is displayed on a correspondingdisplay unit). In the illustrated embodiment, ATP system 100 includes atelephony device 110, interface server 120 (which can be any suitablecomputer system), and display unit 130. Telephony device 110 is coupledto server 120 via interconnect 112, and server 120, in turn, is coupledto display unit 130 via interconnect 122. In some embodiments, server120 and display unit 130 may be implemented within a single housing.

In one embodiment, interface server 120 receives input from telephonydevice 110 and controls a web page (e.g., by controlling the renderingof content presented on display unit 120 responsive to the input fromtelephony device 110). In some embodiments, the received input fromtelephony device 110 is voice input. (As used herein, a “voice input”refers to any type of traffic that is communicated over a voicecommunication channel of telephony device 110 (as opposed to a channelfor communicating data traffic). A voice input may include informationindicative of a signal corresponding to the user's voice. A voice inputmay also include a tone signal that is generated by telephony device 110responsive to a user pressing a key on a keypad—e.g., dual-tonemulti-frequency (DTMF) tone signals). In one embodiment, a user providesa voice input responsive to a prompt from interface server 120. In someembodiments, the prompt is a voice prompt sent via interconnect 112; inother embodiments, the prompt is a visual prompt displayed on displayunit 130. In various embodiments, system 100 provides real-time visualfeedback to the user by rendering a web page in a web browser such thatthe user can view the changes on display unit 130 (thus permitting auser-initiated, interactive session from any telephony device).

As used herein, a “telephony device” is any suitable device that isconfigured to initiate and receive telephone calls, including, withoutlimitation cellular phones, standard landline phones, satellite phones,computing devices with telephone functionality, VoIP devices, etc. Atelephony device may be either an analog or digital telephony device,without limitation.

In one embodiment, the user of telephony device 110 initiates atelephone call over interconnect 112. In one embodiment, interconnect112 is a wide-area network. (As used herein, a “wide-area network”refers a communications network that covers a broad area (as opposed toa local-area network)). In some embodiments, interconnect 112 includes apublic switched telephone network (PSTN), public voice over IP (VoIP)network, etc. Telephony device 110 may be configured to communicatevoice traffic via a voice channel. For example, telephony device 110 mayhave an interface for a user to send and receive audio data, such as amicrophone and speaker, and may have a numbered keypad label with thedigits 0 through 9, and the special keys * and #. In variousembodiments, the keypad is used to initiate telephone calls and tocontrol web pages shown on display unit 130. Telephony device 110 mayalso be configured to communicate data traffic (e.g., email data, webtraffic, etc.) via a data channel that is distinct from the voicechannel.

Interface server 120, in one embodiment, serves as a gateway between thetelephony device 110 domain and the World Wide Web. Interface server 120may take various forms including a personal computer system, a desktopcomputer, a mainframe computer, a parallel architecture system comprisedof one of more of these, or any other suitable device. Interface server120 may operate singly or in a clustered or networked configurationknown commonly as a “server farm.”

In one embodiment, interface server 120 may implement an interactivevoice response (IVR) functionality over a PSTN or VoIP network. Incertain embodiments, the system allows the caller to visually inspecttheir selection(s) on display unit 130.

Display unit 130 may be any of a variety of display devices such as acomputer monitor, a television, or any other display devices. In variousembodiments, a single display unit 130 may (or may not) be usable by aplurality of users simultaneously. To regulate the control of thedisplay unit 130, display unit 130 may have a unique identifier codethat is displayed by display unit 130 and associated with the displayunit 130. In various embodiments, the unique identifier code isgenerated by interface server 120. Thus, a particular display device mayhave a label on it (e.g., a number or other identifier). Accordingly, insome embodiments, when a user calls into server 120, the user mayprovide a unique identifier of a particular display unit 130, and server120 is configured to use the identifier to select the particular displayunit 130 from among other display units 130.

Various (non-limiting) embodiments of ATP system 100 are describedbelow.

ATP as a Web Service

ATP system 100, in one embodiment, is a web service for controlling thecontent displayed on a web page. ATP-associated web pages can correspondwith and supplement voice-only IVR systems. For example, the URLs of webpages that may be displayed may be stored in a hierarchical databasewith search keys created from the sequence of DTMF key presses that havebeen received.

When the user is on a particular ATP homepage, they may be prompted toclick a button for support. They may then be redirected to a page suchas verizon.sucasita.com, which displays a unique 3-digit code. The usercalls the telephone number that is displayed on the screen and entersthis 3-digit code. The server may associate the 3-digit code along withthe browsers session id number to create a unique server-browserconnection that can now be controlled via the phone that called thetelephone number.

In one embodiment, ATP system 100 may “listen” in to a 3-way call (e.g.,ATP system 100 may be “3-waged” into a particular call by a particularcompany, e.g., to a customer service hotline). When an end user calls acompany associated with system 100, another phone call may be made froman IVR to system 100. In one embodiment, an IVR may be in passive modeand listen for DTMF presses or voice input. Database lookups for eachDTMF entry may be done to determine where in the IVR hierarchy the useris. The relevant page OR a URL to a page is retrieved from a databaseand is presented to the user's browser (e.g., via AJAX). Thus, in someembodiments, server 120 is configured to listen for voice input in atelephone call (e.g., a 3-way call), where the telephone call may bebetween the telephony device 110 and another telephony device distinctfrom server 120.

ATP as a Standalone Hardware Product

ATP system 100, in one embodiment, can be made as a standalone productby storing the requisite software in a small computer with a voice modemthat has caller id. This ATP appliance can be affixed to the back of anLCD or can sit on the floor beneath the LCD. The software on the ATPappliance may be encrypted to protect copyright and trade secrets.

Various ATP Uses

ATP system 100, in one embodiment, has the potential to completelychange the landscape of advertising. ATP takes the best of advertisingdriven by search and places it in the place where retail transactionsoccur. ATP may complete a sale up to a certain ceiling value for items.Certain embodiments thus permit the display of a website right at thestore that is tailored to the shopper.

The system serves a number of functions, including, but not limited to:

ATP system 100, in one embodiment, allows visual representation ofhard-to-understand IVR menus, by serving as a liaison between the calledcompany and the caller. ATP's servers handle what information, text,graphics, multimedia or other presentation aids that are given duringthe clients IVR script.

ATP system 100, in one embodiment, may be configured to provideassistance to the visually impaired. For example, in situations where avisually-impaired individual needs access to web content that is on adisplay device, the individual could call ATP system 100, and system 100could read the content shown on the display device to the individual(e.g., using a self-voicing application such as FireVox by Charles L.Chen). Accordingly, in some embodiments, server 120 is configured toprovide audio information to telephony device 110, where the audioinformation indicates content included within a web page. For example,the audio information may be text read from a web page, a description ofpicture on the web page, etc.

ATP system 100, in one embodiment, connects users with their accumulatedprofiles. Whether a user is in Düsseldorf, Germany or Austin, Tex., theuser's profile is available over the ATP network. Local retailers cantap into the ATP database for the user's profile—but only when access isgranted when the user enters the screen's 3-digit code while at theretailer's establishment. For example, ATP system 100 may storeinformation about a user's previous purchases or a user's preferences ina user's profile. ATP system 100 may then allow a user to quickly orderpreviously purchased items from a peripheral ATP kiosk and to make apayment. By the time the user reaches the store, the order can be readyto go. Thus, in some embodiments, server 120 is configured to receiveinput specifying information about a user of telephony device 110. Then,server 120 is configured to retrieving additional information about theuser from a database (e.g., database 218) accessible by server 120 andto render one or more web pages based on the retrieved additionalinformation.

A specific implementation might include having several ATP kiosks alongthe drive-thru at a restaurant. Currently, all other drivers in line areforced to wait for the person at the front of the line to complete anorder before the second in line is even afforded the opportunity toplace an order. With ATP kiosks and a large driver-side menu, or perhapsseveral menus, the process can be streamlined. Instead of seriallyprocessing orders, several orders can be executed in parallel, whichwould result in higher throughput and happier customers. Accordingly, insome embodiments, server 120 is configured to display a webpage ondisplay unit 130 that advertises products available for purchase. Server120 may also be configured to receive voice input indicative of apurchase request. In various embodiments, the initiating includesproviding transaction information to a financial institution (e.g., abank, credit card company, Paypal, etc.) that includes information abouta buyer and the desired product.

ATP system 100, in one embodiment, allows prospective buyers toexperience a richer window-shopping experience whereby they are morelikely to buy on impulse. For example, storefronts can include displaydevices that show a telephone number to call; by calling such a number,users can provide input to the ATP system that can customize/controlwhat is displayed on the display devices, which may afford greateradvertising opportunities to a retailer or other business. As but oneparticular example, an apartment leasing office may place a displaydevice in a window that allows a user to view different floor plans. Bycalling a number of the leasing office, a user may be able selectspecific floor plans that are subsequently displayed on the displaydevice. Unlike a display in which floor plans might be displayed on adisplay device on a rotating, periodic basis, an ATP system may allow auser to control what is displayed (e.g., obtain more information about aparticular floor plan). ATP may also integrate with online paymenttechnologies, micropayment solutions, or loyalty programs that may use“points.”

Another specific implementation might include using ATP to control thedisplaying of digital pictures/artwork (e.g., in a restaurant). If aperson dining in the restaurant likes a particular picture, he or shecan interact with embodiments of the disclosed system to obtainadditional information regarding the picture (e.g., information aboutthe artist). Optionally, ATP can mediate an anonymous telephone callfrom the interested buyer to the owner of the artwork, where the contactinformation for the buyer and the owner are stored in the ATP system100. If a user later decides to give out his or her number to the otherparty, the user may approve the release of a real phone number to theuser's ATP counterpart. The original painting may be located near thecashier's station where it can be purchased. By rotating paintingsthroughout the restaurant, each artist gets greater exposure by allowingthe paintings' digital representation to hop from table to table overthe course of the evening, only pausing at a table if a viewer looks atand interacts with a particular painting. Thus, in some embodiments, ATPsystem 100 is configured to advertise multiple products on a displaydevice and to provide addition information about specific products uponrequest from a user viewing the display device.

ATP system 100, in one embodiment, can also function as a conduit foremergency information distribution. For example, ATP system 100 may beconfigured to display announcement information provided by the EmergencyBroadcast System. ATP system 100 may also be configured to reroute callsplaced to system 100 to special municipal, state or federal informationsources. Thus, a uniform public announcement can be issued acrossthousands of ATP networked display devices.

ATP system 100, in one embodiment, can be used as an ad-hoc informationexchange medium between users. For example, at a convention, attendeesmay register with system 100 and provide system 100 with informationabout themselves such as contact information, particular preferences,etc. System 100 may then provide attendees with information about othersin attendance. For example, system 100 may provide attendees with anonline phone book of phones numbers of other attendees. The listings canbe tailored such that people who meet one another can create virtualvCards by entering each other's ATP unique id. In one embodiment, theATP unique id of a given user might be an attendee's registrationnumber, which is printed on the user's nametag. Thus, in someembodiments, interface server 120 is configured to receive a requestfrom telephony device 110 via interconnect 112, where the request is forinformation about a user of another telephony device (e.g., contactinformation such as a vCard), and to provide the requested informationto telephony device 110 from a database associated with the server 120(e.g., database 218).

ATP system 100, in one embodiment, may include a camera coupled to adisplay device. In one embodiment, system 100 may be configured to usethe camera to detect when a user is in front of a display. For example,when no user is in front of a screen of a display device in an airport,ATP system 100 might display an advertisement for ATP or general airportinformation such as airline-specific flight information. In someembodiments, ATP system 100 may be configured to place video callsbetween users.

ATP system 100, in one embodiment, may be configured to permit a user tooperate an entry device such as a door opener, garage door opener, orgate opener (e.g., at a gated community), etc. This would eliminate theinconvenience of using keypad systems with entry devices. For example, auser might provide an entry code to system 100 via a telephony device110. Thus, in some embodiments, interface server 120 is coupled to anentry device (e.g., a door opener, gate opener, garage door opener,etc.) such that display unit 130 is configured to display informationabout the entry device and such that server 120 is configured toreceive, from a telephony device 110, a request to open the entrydevice, to control the entry device, and to indicate whether access hasbeen granted to the entry device (e.g., via interconnect 112 or displayunit 130).

ATP system 100, in one embodiment, allows tailored advertising. Invarious embodiments, the advertisement can be very general or verytailored. If the viewer has a rich profile created, the advertisementmay be very specific for that user, unless the user prefers a defaultadvertisement. When the advertisement is customized, coupons and otherofferings might be made. Accordingly, in some embodiments, telephonydevice 110 may provide voice input specifying an identifier of a user oftelephony device 110. Server 120 may be configured to use the identifierto retrieve information about the user from a database (e.g., database218) and to select advertising content to be displayed on a web page,where the selecting is based on the retrieved information about theuser.

ATP system 100, in one embodiment, includes a network of one or morescreens (e.g., LCDs, plasmas, without limitation). Participating clientsmay advertise their own products, especially during their normalbusiness hours. Outside these hours, the clients may choose to “rent” or“trade” the ad space with other ATP participants. ATP clients maydisplay the ATP insignia when in idle mode, supporting branding.

FIG. 2 illustrates one embodiment of an interface server 210. As shown,interface server 120 includes a memory 210 storing telephonecommunication software 212, interface software 214, browser software216, and a database 218. In various embodiments, telephone communicationsoftware 212 receives and digitizes the input from telephony device 110.Then, interface software 214 processes the input and determines acorresponding web page data to be displayed, and browser software 216then prepares the data for rendering on display unit 130. It is notedthat while browser software 216 is shown in interface server 120,browser software 216 may be located elsewhere (e.g., display unit 130).

In one embodiment, telephone communication software 212 operates inresponse to telephony identifier data transmitted via thetelecommunications network coupling telephony device 110 and interfaceserver 120. In some embodiments, telephone communication software 212implements PBX and IVR functionality using a VoIP network. In variousembodiments, software 212 accesses hardware installed in the interfaceexpansion slots (not shown) of interface server 120, which enables it tocommunicate over the PSTN. Telephony information may be intercepted andretransmitted by software 212 to interface software 214. Thisinformation may include, but is not limited to, Caller ID, Caller Name,time of call, Called number, Call status and other call detail record(CDR) data that is useful for ATP system 100.

In various embodiments, software 214 receives data from software 212 andprocesses the data to determine desired web page content. Software 214may permit a user to change web pages as well as enter data into a webpage (e.g., a user may input information that fills in a form on awebpage such as their food order for restaurant's menu web page).

In certain embodiments, software 214 interacts with a database 218. Invarious embodiments, database 218 is a MySQL Database. In oneembodiment, database 218 is implemented as flat file database usingunique files to contain data to be sent to browser software 216.Information received from database 218 is processed by software 214 toconstruct web URLs that rely on the data returned from database 218.

Browser software 216, in one embodiment, processes the web URLs andpublishes the rendered webpage to the display unit 130, which isobserved by the user. The web URLs effectively redirects the web browserto the desired web page or web script. Browser software 216 may be anyof a variety of web browser software including any of Microsoft'sInternet Explorer, Mozilla's Firefox and Apple's Safari, etc. These webbrowsers typically receive the information they render using widelystandardized protocols such as HTTP or HTTPS and in formats such as HTML(hypertext markup language) or XHMTL (extensible hypertext markuplanguage). Browser improvements implement by browser software 216 mayinclude the capability to also handle a variety of languages such as,JavaScript, Flash, AJAX and more. AJAX is a technology that prevents theuser from having to reload the URL their browser is viewing in order toretrieve new content, as would be necessary when using earlier protocolsand technologies. A popular use of AJAX is to update stock prices on aweb page automatically without having to reload the entire web page. Notonly does this save time and network resources, but it also provides fora better user experience. Because the ATP system 100 works in tandemwith telephony device 110 to return dynamic data (in the form of URLselection), display unit 130 may not (or may) have a keyboard or mouseinterface to initiate a page reload.

FIG. 3 is one embodiment of a method 300 implemented by ATP system 100.Method 300, in some embodiments, is performed by interface server 120after server 120 provides a prompt to a user of telephony device 110.The prompt may be a visual prompt provided via display unit 130 such ascontent displayed in a web page. Alternatively, the prompt may be avoice prompt—e.g., a spoken prompt of an IVR system. In variousembodiments, steps may be performed in a different order thanillustrated.

In step 310, server 120 receives a call by a user from telephony device110. In one embodiment, the call is received from a wide-area networksuch a PSTN, Voice over IP network, etc.

In step 320, server 120 authenticates telephony device 110. In oneembodiment, authenticating telephony device 110 includes retrievingprofile information about a user of telephony device 110 such asinformation stored in database 218. In some embodiments, authenticatingtelephony device 110 includes using a unique identifier provided by auser to select a particular display unit 130 that will interact with auser of telephony device 110. In various embodiments, authenticatingtelephony device 110 may include establishing a secure unique sessionfor the exchange between telephony device 110 and server 120 (e.g., bylock file or database).

In step 330, server 120 receives voice input from telephony device 110.In some embodiments, the voice input includes speech that is recorded bya microphone of telephony device 110. The voice input may also include atone signal generated as the result of a key being pressed (e.g., a DTMFtone).

In step 340, server 120 retrieves information associated with thereceived voice input. In one embodiment, server 120 retrieves URLcontent associated with an indicated selection. In some embodiments,server 120 retrieves website information usable to render one or moreweb pages.

In step 350, server 120 sends web page information to display unit 130.In one embodiment server 120 sends the retrieved URL content to a webclient (e.g., on display unit 130). In some embodiments, server 120renders a web page and sends the rendered web page to display unit 130to be displayed.

Various embodiments for controlling a display of a webpage on a displayunit via a telephony device described herein may include storinginstructions and/or data implemented in accordance with the foregoingdescription in an article of manufacture such as tangiblecomputer-readable memory medium, including various portions of memory210. Certain embodiments of these tangible computer-readable memorymedia may store instructions that are computer executable to performactions in accordance with the present disclosure. Generally speaking,such an article of manufacture may include storage media or memory mediasuch as magnetic (e.g., disk) or optical media (e.g., CD, DVD, andrelated technologies, etc.). The article of manufacture may be eithervolatile or nonvolatile memory. For example, the article of manufacturemay be (without limitation) SDRAM, DDR SDRAM, RDRAM, SRAM, flash memory,and of various types of ROM, etc. In general, any of the methodsdescribed herein as being implementable in software may be implementedusing program instructions that are stored on various forms of tangiblecomputer-readable media.

Further embodiments of programs described herein may includestoring/encoding instructions and/or data on signals such as electrical,electromagnetic, or optical signals, conveyed via a communicationmedium, link, and/or system (e.g., cable, network, etc.), whether wired,wireless or both. Such signals may carry instructions and/or dataimplemented in accordance with the foregoing description.

FIG. 4 depicts one embodiment of a computer system 400 for implementingtelephony device 110 and/or interface server 120. Telephony device 110and interface 120 may, of course, be any implemented by suitable type ofdevice. As shown, computer system 400 includes a processor subsystem 480that is coupled to a memory 420 and I/O interfaces(s) 440 via aninterconnect 460 (e.g., a system bus). I/O interface(s) 440 is coupledto one or more I/O devices 450. In some embodiments, interface server120 is implemented by a computer system 400 such as a server computersystem, personal computer system, desktop computer, laptop or notebookcomputer, mainframe computer system, workstation, network computer, etc.In some embodiments, telephony device 110 is implemented by a computersystem 400 such as a handheld computer, a mobile phone, pager, personaldata assistant (PDA), etc. Although a single computer system 400 isshown in FIG. 4 for convenience, system 400 may also be implemented astwo or more computer systems operating together.

Processor subsystem 480 may include one or more processors or processingunits. For example, processor subsystem 480 may include one or moreprocessor units that are coupled to one or more coprocessor units. Invarious embodiments of computer system 400, multiple instances ofprocessor subsystem 480 may be coupled to interconnect 460. In variousembodiments, processor subsystem 480 (or each processor unit within 480)may contain a cache or other form of on-board memory.

Memory 420 is usable by processor subsystem 480. Memory 420 may beimplemented using different physical memory media, such as hard diskstorage, floppy disk storage, removable disk storage, flash memory,random access memory (RAM-SRAM, EDO RAM, SDRAM, DDR SDRAM, Rambus® RAM,etc.), ROM (PROM, EEPROM, etc.), and so on. Memory in computer system400 is not limited to memory 420. Rather, computer system 400 may besaid to have a “memory subsystem” that includes various types/locationsof memory. For example, the memory subsystem of computer system 400 may,in one embodiment, include memory 420, cache memory in processorsubsystem 480, and storage on I/O Devices 450 (e.g., a hard drive,storage array, etc.). Thus, the phrase “memory subsystem” isrepresentative of various types of possible memory media within computersystem 400. In some embodiments, the memory subsystem stores programinstructions executable by processor subsystem 480.

I/O interfaces 440 may be any of various types of interfaces configuredto couple to and communicate with other devices, according to variousembodiments. In one embodiment, I/O interface 440 is a bridge chip froma front-side to one or more back-side buses. I/O interfaces 440 may becoupled to one or more I/O devices 450 via one or more correspondingbuses or other interfaces. Examples of I/O devices include storagedevices (hard drive, optical drive, removable flash drive, storagearray, SAN, or their associated controller), network interface devices(e.g., to a local or wide-area network), or other devices (e.g.,graphics, user interface devices, etc.). In one embodiment, computersystem 400 is coupled to a wide-area network (e.g., a mobile telephonenetwork) via a network interface device.

Various operations described herein may be implemented using programinstructions that are executable on the disclosed system. Below is anon-limiting example of program instructions that may be used. It isnoted that, in other embodiments, the program instructions may beimplemented differently.

Make_Selection.htmlThis file is an exemplary html that generates the interface presentedbelow.

WELCOME TO

 Sentient Network Company Please select from the following list : Tip:Please enter your choices by pressing any of the following buttons! 0 -to go to Ext 2323 1 - to go to Carls Jr's Burgers.com 2 - to go toMercedes Benz.com 3 - to go to Greyhound.com 4 - to go This Main MenuBelow is the source code for make_selection.html <html> <head> <linkrel=“stylesheet” type=“text/css” href=“css/T2_IVR_main.css”media=“screen” /> <title>Make Selection - Trey Tracker TechConnect</title>  <meta name=“GOOGLEBOT” content=“noarchive,index,follow” /><meta name=“robots” content=“noindex,nofollow”> <scripttype=“text/javascript” src=“js/sha1.js”></script> <style> * { margin:0px; padding: 0px; } body { text-align: center; } #container { width:500px; padding: 0 auto; text-align: left; margin: 100 auto; } #ad {padding: 3px; border: 1px solid #bbb; color: #FF1818; font-size: 20px;margin-top: 0px; text-align: center; } input[type=“submit”] { color:#000; background: #ffa200; border: 1px outset #d7b9c9 } </style> </head><body id=“type-a”> <form method=post AUTOCOMPLETE=“OFF” action=“http://www.aimbus.com/XML/invitetech3.php”> <div id=“header” > <divid=“site-name”> <a href=“http://www.aimbus.com” target=“_blank”><imgsrc=“images/T2logo.gif”></a> </div> </div> <div class=“licensetab”>WELCOME TO &#187 Sentient Netwirk Company </div> <h1> Please select fromthe folowing list : </h1> <p><b>Tip:</b> Please enter your choices nomore than 5 seconds apart or you will be disconnected!</p> <br><br> <br><font color=brown> <p><h1><font color=green> 0 - to go to Ext 2323</label></font><br></h1> <p><h1> 1 - to go to Carls Jr'sBurgers.com</label><br></h1> <p><h1> 2 - to go to MercedesBenz.com</label><br></h1> <p><h1> 3 - to go to Greyhound.com</label><br></h1> <p><h1><font color=blue> 4 - to go This Main Menu</label></font><br></h1> <br> </font> <br> </form> </body> <scriptlanguage=“javascript”> <!-- document.forms[0][‘T2_username’].focus( );function submit_handler( ) { //var chap =‘a1e1223cc4252e5a7a19027c38e821732997a2ad’; //var pwdhash =hex_sha1(document.forms[0][‘T2_password’].value); //var hash =hex_sha1(chap + pwdhash); // hide the user's real password or whatever//alert(‘debug: submitting data:’);//document.forms[0][‘T2_password’].value = hash; if (1>2) {alert(‘debug:Not all checks were ok. Cancelling the submission.’); //action=“http://www.aimbus.com/XML/invitetech3.php” return false; // onlysubmit if all test passed // cancel submitting the form and show warningmessage //document. style= visible; } else { alert(‘debug: All checkswork correct. Proceeding to next page...’); //action=“http://www.aimbus.com/XML/invitetech3.php” return true; } } --></script> <a href=“” id=“noie”></a> </html>

Invitetech3.php

This file processes a users input for display using Make_Selection.html.The source code of Invitetech3.php is shown below:

<?php############################################################################# # For debugging ... # #echo ‘<pre>’; #print_r ($_POST); #print_r($_POST[techname]); #print_r ($_POST[telephone]); #print_r($_POST[invitationcode]); #echo ‘</pre>’;############################################################################# Get user-specific session info # start session for this user################## OOPS ! Headers were already sent ! #session_start( );#if(isset($_SESSION[‘views’])) # $_SESSION[‘views’] =$_SESSION[‘views’]+ 1; #else # $_SESSION[‘views’] = 1; # #echo “views =”. $_SESSION[‘views’];############################################################################?> <body bgcolor=#99ffcc> <? $myFile = “./sessions/” . $_POST[telephone]. “.” . $_POST[invitationcode] . “.” . “html”; $myLink = “./sessions/” .$_POST[telephone] . “.” . $_POST[invitationcode] . “.” . “push-server2.php”; //echo “DEBUG: Push server for this user is: “ . $myFile.”\n” ; $fh = fopen($myFile, ‘w’) or die(“can't open file: [“ .$myFile.”]”); ##$fh = fopen(‘sessions/test.html’, ‘w’) or die(“can'topen file: [“ . $myFile.”]”); # ideally we'd goto the file for theparticular user, but for now we might just go to the main push serverfile # TVB $stringData = ‘<meta http-equiv=“refresh”content=“2;url=http://www.aimbus.com/XML/‘ . $myLink .’” />’;$stringData = ‘<meta http-equiv=“refresh”content=“5;url=http://www.aimbus.com/XML/sessions/push-server2.php‘ . ’”/>’; fwrite($fh, $stringData); # Written to user's html session file$stringData = “<em> Your technician <font color=green> ” .$_POST[techname] . “ </font> is preparing a document for you and will bewith you in just a moment. </em> <br />”; $stringData = $stringData .“Please click on the <a href=http://www.test.com> link </a> below forimportant information about this service: <br/>”; $stringData =$stringData . “<ahref=http:\\www.aimbus.com/XML/sessions/bookmarklettutorial.htmltarget=_blank > Saving this page in your toolbar tutorial </>”;fwrite($fh, $stringData); fclose($fh); ## create/update a push-serverfor this user ## e.g.http://www.aimbus.com/XML/sessions/trey/5125551212.43232.push-server2.php$fhi = fopen($myLink, ‘w’) or die(“can't open file”);$stringDataClientPage =“ File contents would go here ... ”;$file_to_check = “./sessions/latesttop”; $stringDataClientPage=“<?php \$client_mt=filemtime(latesttop); do { sleep (1); clearstatcache(); } while (\$client_mt == filemtime(latesttop)); ?> ”; fwrite($fhi,$stringDataClientPage); fclose($fhi); # Create a symbolic link to thetemplate file for this file # TODO: Does the file actually exist firstbefore linking $linkcommand = “In -s pushserver2.php ” . $myLink;##$output = shell_exec($linkcommand); ##sleep(2); ##echo“<pre>$output</pre>”;################################################################################################ ## NOW, wait a while then redirect to correct fileper user. ## We wait until we detect that the technician has EDITcontrol of the screen before sending ## user on to the guided tour.$client_mt = filemtime($file_to_check); print_r(“<font color =red><H2>”); print_r(“<br><br><br><br><br><br><br>”); print_r(“Waitingfor agent to connect ... <br/>”); # Debug print_r($file_to_check);print_r(“</font><H2>”); flush( ); do { sleep (1); # sleep until there isa change in the file clearstatcache( ); } while ($client_mt ==filemtime($file_to_check)); # compare file stat time ## Change detected,so new connection established! # after change detected, user isredirected to a location # such as :http://www.aimbus.com/XML/sessions/5125551212.44499.html################################################################################################ # Print a message to the user's screen letting themknow the connection was established print_r(“<font color =orange><H2>”); print_r(“Connection established!”);print_r(“</font><H2>”); flush( ); # This line is needed to get everthingprinted to the screen before switching pages! sleep(2);print_r(“<script>”); print_r(“document.location.href=‘“.$myFile. ”’;”);print_r(“</script>”); # not reached - sleep(2);

Although specific embodiments have been described above, theseembodiments are not intended to limit the scope of the presentdisclosure, even where only a single embodiment is described withrespect to a particular feature. Examples of features provided in thedisclosure are intended to be illustrative rather than restrictiveunless stated otherwise. The above description is intended to cover suchalternatives, modifications, and equivalents as would be apparent to aperson skilled in the art having the benefit of this disclosure.

The scope of the present disclosure includes any feature or combinationof features disclosed herein (either explicitly or implicitly), or anygeneralization thereof, whether or not it mitigates any or all of theproblems addressed by various described embodiments. Accordingly, newclaims may be formulated during prosecution of this application (or anapplication claiming priority thereto) to any such combination offeatures. In particular, with reference to the appended claims, featuresfrom dependent claims may be combined with those of the independentclaims and features from respective independent claims may be combinedin any appropriate manner and not merely in the specific combinationsenumerated in the appended claims.

1. A computer system, comprising: one or more processors; a memorystoring program instructions executable to cause the computer system to:provide a visual prompt via a display unit coupled to the computersystem; receive a first voice input from a telephony device over awide-area network, wherein the first voice input is made in response tothe visual prompt; and in response to the received voice input, controlthe content of one or more web pages displayed on the display unit. 2.The computer system of claim 1, wherein the telephony device is awireless device, and wherein the wide-area network includes a mobiletelephone network, and wherein the received voice input includes DTMFinput.
 3. The computer system of claim 1, wherein the visual promptadvertises one or more products available for purchase, and wherein thefirst voice input requests to purchase at least one of the one or moreproducts.
 4. The computer system of claim 1, wherein the first voiceinput specifies information requested by the visual prompt, and whereinthe memory stores program instructions executable to cause the computersystem to update content of at least one of the one or more web pages inresponse to the specified information.
 5. The computer system of claim1, wherein the memory stores program instructions executable to: causethe computer system to provide a voice prompt to the telephony deviceover the wide-area network; and receive a second voice input from thetelephony device over the wide-area network, wherein the second voiceinput is made in response to the voice prompt.
 6. The computer system ofclaim 1, wherein the computer system is usable with a telephony-basedcustomer service interactive voice response (IVR) system, wherein atleast one of the one or more web pages includes informationcorresponding to options available via the IVR system, and wherein theweb page is updatable in real time based on the received voice input. 7.The computer system of claim 1, wherein the computer system and thedisplay unit are contained within a single housing.
 8. A method,comprising: a computer system providing a visual prompt via a displayunit coupled to the computer system; the computer system receiving afirst voice input from a telephony device over a wide-area network,wherein the first voice input is made in response to the visual prompt;and in response to the first voice input, the computer systemcontrolling the content of one or more web pages displayed on thedisplay unit.
 9. The method of claim 8, further comprising: the computersystem listening for the first voice input in a telephone call placedover the wide-area network, and wherein the telephone call is betweenthe telephony device and another telephony device distinct from thecomputer system.
 10. The method of claim 8, further comprising: thecomputer system providing audio information to the telephony device,wherein the audio information indicates content included within at leastone of the one or more web pages.
 11. The method of claim 8, wherein thedisplay unit is configured to display information about an entry devicecoupled to the computer system, and wherein the method furthercomprises: the computer system receiving, from the telephony device, arequest to open the entry device; in response to receiving the request:the computer system controlling the entry device; and the computersystem indicating whether access has been granted to the entry device.12. The method of claim 8, wherein the method further comprises:receiving a second voice input specifying an identifier of a user of thetelephony device; the computer system using the identifier to retrieveinformation about the user from a database; and the computer systemselecting advertising content to be displayed on at least one of the oneor more web pages, wherein said selecting is based on the retrievedinformation about the user.
 13. The method of claim 8, furthercomprising: the computer system receiving a request from the telephonydevice over the wide-area network, wherein the request is forinformation about a user of another telephony device configured toconvey voice input to the computer system over the wide-area network;and the computer system providing the requested information to thetelephony device from a database associated with the computer system.14. The method of claim 8, wherein the wide-area network is a VoIPnetwork.
 15. A computer-readable storage medium having programinstructions stored thereon, that, if executed by a computer system,cause the computer system to perform operations comprising: providing avisual prompt via a display unit coupled to the computer system;receiving a first voice input from a telephony device via a wide-areanetwork, wherein the first voice input is made in response to the voiceprompt; and rendering one or more web pages in response to the firstvoice input, wherein the rendered one or more web pages are to bedisplayed on the display device.
 16. The computer-readable storagemedium of claim 15, the operations further comprising: changing fromdisplaying a first web page on the display device to displaying a secondweb page on the display device.
 17. The computer-readable storage mediumof claim 15, the operations further comprising: receiving a second voiceinput specifying an identifier of the display device; and using theidentifier to select the display device from among a plurality ofdisplay devices coupled to the computer system, wherein each displaydevice is associated with a unique identifier.
 18. The computer-readablestorage medium of claim 15, the operations further comprising:displaying a webpage on the display device, wherein the displayedwebpage advertises one or more products available for purchase; andreceiving a second voice input requesting to purchase at least one ofthe one or more products; and initiating a transaction to purchase theproduct.
 19. The computer-readable storage medium of claim 18, whereinsaid initiating includes providing transaction information to afinancial institution that includes information about a buyer and theproduct.
 20. The computer-readable storage medium of claim 15, theoperations further comprising: receiving a second voice input specifyinginformation about a user of the telephony device; and retrievingadditional information about the user from a database accessible by thecomputer system; and rendering one or more web pages based on theretrieved additional information.